Application deployment from a smart card

ABSTRACT

The invention concerns a method for deploying an application consisting of several distributed remote elements, from a first data processing means containing descriptors of said elements, onto a second data processing means connected to the means for implanting said element, and for executing the deployed application. Said method comprises at least steps which consist in: selecting ( 2 ) at least one element of the application as priority element; deploying ( 3 ) onto the second processing means the priority elements or elements; and executing ( 5 ) the application with the second processing means when the priority element or elements have been deployed.

This disclosure is based upon French Application No. 01/06606, filed May18, 2001, and International Application No. PCT/FR02/01635, filed on May15, 2002, the contents of which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

The present invention concerns the deployment of an application from afirst data processing means, such as a smart card, also referred to as amicrocontroller card or an integrated circuit card, onto a second dataprocessing means, such as a reception terminal for the smart card, in awide-ranging and heterogeneous context. In this context, the applicationconsists of software components dispersed in a telecommunication networkand must be able to be executed from heterogeneous terminals havingdifferent hardware and software characteristics, such as a mobileradiotelephone terminal, a personal digital assistant and a personalcomputer. The heterogeneous terminals differ for example by theiroperating systems and their data coding and communicationcharacteristics.

At present, users access various applications through telecommunicationnetworks, in particular the Internet, almost using any terminalwhatsoever amongst various heterogeneous terminals, from their offices,their homes, or public access terminals. Unfortunately, the applicationsare not capable of configuring themselves automatically according tocharacteristics personal to the user and it is necessary to reconfigurethe terminal of the user according to the application chosen. In orderto execute the applications correctly, the terminal must have servicedata available relating to the application to be executed and to theremote servers offering these applications, and confidential personaldata, specific to each user and personalizing the access to one or moreapplications. When the users are sedentary, this information isgenerally static on their terminals. On the other hand, when the usersare itinerant, the smart card offers an autonomous, secure and portablemedium for supplying these data to the terminals the user is liable toneed.

Furthermore, it is in the interest of application providers for theirapplications to be usable from a very large number of terminal types. Anapplication must therefore be capable of adapting itself to the terminalin which it is executed. For example, a given application presents acomplex window-based graphical interface in a personal computer, andsimple textual menus in a mobile radiotelephone, or establishes audio orvideo communication according to the transmission speed offered by thenetwork and the terminal.

The adaptability of distributed applications to their execution contextand to the requirements of the user thus becomes a necessity (cf. thearticle entitled “Adaptability of applications for mobile users”, MichelRiveill et al., OCM'2000, Objets Composants Modéles, 8 May 2000). It istherefore necessary to deploy service applications according to the typeof terminal and configuration personalisation for the user. Thisrequired flexibility is obtained through a modular architecture of eachapplication. Each application is designed as a graph of componentsinterconnected by connections. Deployment of the application onto aterminal creates therein instances of these components according to thepersonal characteristics and execution context.

As shown in FIGS. 1 and 2, definition of an application is known in asmart card CP, or any other portable electronic object having arelatively small memory capacity, by a descriptor DAP of an applicationAP identifying essential elements of the application such as thesoftware components CA of the application and connections CX betweenthese components in pairs. In general, an application comprises at leastthree components CA1, CA2 and CA3 and at least two connections CX1 andCX2 interconnecting the components CA1 to CA3 in pairs.

A component CA is a software processing unit encapsulatingfunctionalities, small enough so that it can be created and maintained,and large enough so that it can be installed and supported. Thecomponent is provided with communication interfaces so that it cancooperate with other components and thus present its behavior to theseother components. In practice, a software component can be physicallylocated on any site whatsoever of a transmission network RT.

A connection defines the relationships between the communicationinterfaces of two components. Parameters of the connections of theapplication are also adapted to the context of the execution platform.

At the level of the smart card CP, an application descriptor DAP doesnot contain the element itself (software component CA or connection CX),but a descriptor DCA, DCX of the element CA, CX containing propertiesand parameters of the element defining it and making it possible toretrieve it from amongst a multitude of elements.

The properties of an element descriptor are fixed once and for all bythe application provider who specialises the element, component orconnection, in order to satisfy the requirements of the application andthe user according to subscription characteristics for example. Theyindicate the characteristics of the platform on which the element can beexecuted, and the systems requirements necessary for its execution. Oneproperty can consist of an element address or type, which is associatedwith each element and used for searching for the code or the physicallocation of the element, or is intimately linked to the application oran application type. For example, the “account number” property isassociated with a bank account manager component. These properties are,according to the prior art, fixed at the time of subscription to theservice corresponding to the application by the user of the smart card,and are accessible for reading only.

Other properties, referred to as parameters, are preferably personalisedby the user and can be modified at any time. For example, one parameterdefines the currency for displaying an amount, or else a range ofcolours for displaying pages on a screen, or else again the value of thetransmission speed or a transmission characteristic in a connection.

Each application descriptor is represented in the form of an objectgraph in an object-oriented language, for example JAVA (registeredtrademark) or XML (Extensible Markup Language).

The application descriptors DAP1, DAP2, DAP3 in a multi-applicationsmart card are associated with the deployment driver (bootstrap) PIwhich constitutes within the smart card CP an application making itpossible to select an application, configure it and deploy it accordingto its descriptor, after insertion of the card CP into the receptionterminal TE. By gathering together the application descriptors and thedeployment driver in the card, the confidentiality of the descriptors isensured, with the result that the reading of the descriptors by thedeployment driver does not require authentication. On the other hand,the deployment driver authenticates each client that interrogates itbefore making available to it all the application descriptors stored inthe card. The driver PI can thus process one or more applicationdeployments.

As already said, an application element, component or connection, isconfigured according to the application context, that is to say thehardware and software properties of the platform where the applicationwill be executed, and parameters chosen by the user and personalizingthe application. All this information is gathered together in theapplication element descriptor in order that the deployment driver PIfilters the information contained in the element descriptor according tothe application context and the personalisation parameters of the user.

The deployment driver PI located in the smart card CP transmitsdeployment commands to a deployment portal PO which is an applicationelement implemented in the reception terminal TE. The main function ofthe portal is to receive the deployment commands and retransmit them tothe execution platform in order to install the selected application.Thus the deployment portal principally has a function of informing thesmart card about the environment in which the installation and executionof the selected application must be carried out, and a function ofcommunicating with the card in order to receive various deploymentcommands for the selected application.

According to the prior art, the deployment of an application issynchronous, that is to say the commands produced by the deploymentdriver PI are transmitted sequentially, one after another, respectivelyfor installing the elements of the application, then for parameterisingthe elements of the application, each command having to be acknowledgedby the deployment portal PO on the terminal before the next command issent by the driver PI.

Finally, when all the components and connections of the selectedapplication AP are installed and parameterised, the application thusdeployed is adapted to the terminal TE and can then be executed. Theapplication is started by an execution command (RUN) which contains thename of the component of the selected application determining the entrypoint of the application, generally a user interface component.

It turns out that such a synchronous deployment has the drawback ofmaking the installation of an application long, because of thesuccession of commands that must be acknowledged according to apredetermined scheme. This installation becomes longer as the number ofcomponents to be installed increases and the installation of saidcomponents necessitates calling upon the resources of the transmissionnetwork RT. This time during which the user is waiting can be a factorfor rejecting an application when it is too great.

To attempt to remedy this drawback, a proposal has been made to performthe deployment of an application asynchronously, that is to say thedriver PI requests the installation in parallel of all the applicationcomponents which are independent of other components, without waitingfor an acknowledgement from the portal PO, and then orders in parallelthe installation of dependent elements in response respectively toacknowledgement of the installation of the elements on which theydepend. Parameterising of the elements can also be performedasynchronously. In the case of a single-processor system, the executionin parallel of a number of processes means simply that a number ofprocesses can be in the course of execution simultaneously, theresources of the processor being, of course, allocated to a singleprocess at a given instant.

This solution makes it possible to optimise the use of the processingpower and transmission speed offered by the terminal and transmissionnetwork. However, in particular when the application to be installedcomprises many components and the deployment terminal has a smallprocessing capacity, asynchronous deployment does not make it possibleto significantly reduce the waiting time of the user before theapplication is started.

In the two preceding cases, all the application components areinstalled, even those that the user rarely or never uses, whichunnecessarily increases the application installation time andunnecessarily overloads the resources of the terminal.

SUMMARY OF THE INVENTION

The objective of the present invention is to remedy the aforementioneddrawbacks of the deployment of applications with distributed elementsaccording to the prior art, and to further reduce the installation time.

This objective is achieved by the provision of a method for deploying anapplication consisting of a number of distributed remote elements, froma first data processing means containing descriptors of the saidelements, onto a second data processing means linked to means ofphysically locating the elements, in order to execute the applicationonce deployed, characterised in that it comprises at least the stepsconsisting of:

-   -   selecting at least one element of the application as a priority        element;    -   deploying onto the second processing means the priority element        or elements; and    -   executing the application by the second processing means as soon        as the priority element or elements have been deployed.

By virtue of these provisions, the waiting time of the user isconsiderably reduced, since the deployment performed before starting theapplication concerns a reduced number of components. In addition, ifonly the components used are installed, the card does not present theterminal with the descriptors of the non-installed elements, and theterminal resources are not overloaded by unnecessary elements.

Advantageously, the step of selecting at least one element of theapplication as a priority element consists of examining at least onepriority indicator contained in the descriptor of the said application.

According to one particular feature of the invention, if, duringexecution of the application by the second data processing means, anon-deployed element is called, the method also comprises a step ofdeploying the called element, and then a step of continuing execution ofthe application.

According to another particular feature of the invention, theapplication elements not selected as priority elements are deployed ontothe second data processing means in parallel with the execution of theapplication.

According to yet another particular feature of the invention, the methodalso comprises a step of transmitting the execution context of theapplication from the second data processing means to the first dataprocessing means, the deployment in parallel with the execution of theapplication, of the application elements not selected as priorityelements, being carried out according to the execution contexttransmitted.

Preferably, the application elements not selected as priority elementsare deployed onto the second processing means in parallel with theexecution of the application, synchronously.

Alternatively, the application elements not selected as priorityelements are deployed onto the second processing means in parallel withthe execution of the application, asynchronously.

According to yet another particular feature of the invention, the methodalso comprises a step of selecting at least one element of theapplication as a non-priority element, the non-priority elements of theapplication being deployed onto the second processing means only if theyare called during execution of the application.

Advantageously, at the end of execution of the application, the methodaccording to the invention also comprises a step of updating therespective priority indicators of the elements of the applicationaccording to the elements that have been used during execution of theapplication.

The invention also concerns an electronic object comprising adescription means for describing an application consisting of a numberof distributed remote elements, and a processing means for deploying theapplication with a view to its execution outside the electronic object,according to the application description means,

characterised in that the description means comprises at least onepriority indicator for selecting at least one element as a priorityelement of the application, and in that the means for deploying theapplication deploys only the priority elements before permitting theexecution of the application.

This object is for example of the microcontroller card type.

The invention also concerns an application deployment system comprisinga portable electronic object of the microcontroller card type, aterminal connected to a data transmission network and comprising a meansfor communicating with the portable electronic object, the portableelectronic object comprising a description means for describing anapplication consisting of a number of distributed remote elementsaccessible to the terminal through the data transmission network, and aprocessing means for deploying the application onto the terminal with aview to its execution by the terminal, according to the applicationdescription means,

characterised in that the description means comprises at least onepriority indicator for selecting at least one element as a priorityelement of the application, and in that the means for deploying theapplication deploys only the priority elements before initiating theexecution of the application deployed on the terminal.

BRIEF DESCRIPTION OF THE DRAWINGS

Other characteristics and advantages of the present invention willemerge more clearly from a reading of the following description of anumber of preferred embodiments of the invention with reference to thecorresponding accompanying drawings in which:

FIG. 1 depicts schematically a modular application comprising sixcomponents;

FIG. 2 is a schematic block diagram of the means used in atelecommunication network for the deployment of an applicationconsisting of distributed remote elements;

FIG. 3 is an algorithm for deployment and execution of an application,according to the invention; and

FIGS. 4 and 5 are algorithms showing in more detail certain steps of thealgorithm depicted in FIG. 3.

DETAILED DESCRIPTION

FIG. 1 depicts an application of banking services accessible by a datatransmission network such as the Internet. This application comprises amain component CA1 in which there are assembled all the functions UI forinterfacing with the user; this component makes it possible to access ageneric bank account management service integrated in a component CA2and a generic credit request service CA3. To that end, the component CA1is linked to the components CA2 and CA3 by the respective connectionsCX1 and CX2. In the particular application made available to the user,depicted in FIG. 1, the bank account management component CA2 is linkedby the connections CX3 and CX4 respectively to the servers of twobanking organisations B1 and B2 integrated in the components CA4 andCA5, which means that the user can access bank accounts managed only bythe banking organisations B1 and B2. Similarly, the component CA3 islinked by the connections CX5 and CX6 respectively to the servers of twobanking organisations B1 and B3.

All the elements of such an application do not necessarily have to beinstalled on the execution terminal of the application. Thus, in theexample set out, the services offered by the banking organisationservers, in the course of execution on remote sites, are interrogated ondemand by the execution terminal of the application. To that end, thelink between the components CA2 and CA3 on the one hand and thecomponents CA4 to CA6 on the other hand is made by the connectors CX3 toCX6 which use the network by implementing an appropriate communicationprotocol.

Such an application can be described by an application descriptor havingthe following form, expressed in the XML language:

 <Application Name=“Banking”>   <Component Name=“ui”Type=“banking.AccountServiceUIObject”    Runnable=“y”>    <PropertyName=“deploymentUrgency”>     <Value Value=“100”/>    </Property>    . ..   </Component>   <Component Name=“B1” Type=“banking.BankObject”>   <Property Name=“deploymentUrgency”>     <Value Value=“70”/>   </Property>    . . .   </Component>   <Component Name=“B2”Type=“banking.BankObject”>    <Property Name=“deploymentUrgency”>    <Value Value=“50”/>    </Property>    . . .   </Component>  <Component Name=“B3” Type=“banking.BankObject”>    <PropertyName=“deploymentUrgency”>     <Value Value=“5”/>    </Property>    . . .  </Component>   <Component Name=“Agent”Type=“banking.AccountServiceObject”>    <PropertyName=“deploymentUrgency”>     <Value Value=“70”/>    </Property>    . ..    </Component>    <Component Name=“Credit”Type=“banking.CreditServiceObject”>    <PropertyName=“deploymentUrgency”>     <Value Value=“8”/>    </Property>    . . .  </Component>   <Connection Name=“Agent_B1”     UserComponent=“Agent”UserInterface=“accounts”     ProviderComponent=“B1”ProviderInterface=“accounts”>    <Property Name=“deploymentUrgency”>    <Value Value=“69”/>    </Property>    . . .   </Connection>  <Connection Name=“Agent_B2”     UserComponent=“Agent”UserInterface=“accounts”     ProviderComponent=“B2”ProviderInterface=“accounts”>    <Property Name=“deploymentUrgency”>    <Value Value=“39”/>    </Property>    . . .   </Connection>  <Connection Name=“UI_Agent”     UserComponent=“ui”UserInterface=“accounts”     ProviderComponent=“Agent”ProviderInterface=“accounts”>    <Property Name=“deploymentUrgency”>    <Value Value=“69”/>    </Property>    . . .   </Connection>  <Connection Name=“Credit_B1”     UserComponent=“Credit”UserInterface=“accounts”     ProviderComponent=“B1”ProviderInterface=“accounts”>    <Property Name=“deploymentUrgency”>    <Value Value=“2”/>    </Property>    . . .   </Connection>  <Connection Name=“Credit_B3”     UserComponent=“Credit”UserInterface=“accounts”     ProviderComponent=“B3”ProviderInterface=“accounts”>    <Property Name=“deploymentUrgency”>    <Value Value=“4”/>    </Property>    . . .   </Connection> </Application>

This syntax, using field start and end tags “<XXX>” and “</XXX>”,represents a hierarchical structure of elements nested inside oneanother. It gives in particular a list of the descriptors of elements(software components and connections) forming part of the application,each element descriptor comprising in particular a list of properties.

As described above, such an application descriptor is stored in a firstprocessing means such as a smart card CP, which can store a number ofapplication descriptors DAP1, DAP2, DAP3, if it is a multi-applicationcard. Such a card is intended to be read by a card reader coupled to asecond processing means such as a terminal TE in which it is wished todeploy an application. The deployment of an application from such a cardis managed by the deployment driver PI integrated in the smart card CP,which, when the card is read by the reader of a terminal TE,communicates with a software program referred to as a deployment portalPO provided on the terminal.

Deployment is therefore carried out by the deployment driver PI from thedescriptor DAP of the selected application, by establishing a dialoguewith the deployment portal PO in the reception terminal TE. The portalcan contain an element search engine, or be in contact with one or moreelement search engines MR, as shown in FIG. 2. Each search engine MR hasaccess to application element libraries BI1, BI2, BI3, through thetransmission network RT. Each element in a library is stored with itsdescriptor and managed by the designer of the element. The transmissionnetwork RT can be a public or private network, of cabled or cell phonetype, or else of computer network type such as the Internet.

As depicted in FIGS. 3 and 4, the deployment proper of a selectedapplication is preceded by an initialisation phase 1 during which theuser inserts the smart card CP into the reader slot of the receptionterminal TE. After insertion of the smart card, the latter dialogues 11with the reception terminal in order to authenticate 12 the user,ascertain 13 the context of the application execution platformconstituted essentially by the terminal TE, and the selected application14.

Authentication consists for example of verifying the identity of theuser by means of a confidential PIN code entered through the terminal.

The context external to the hardware environment of the smart card isdefined by properties of the execution platform which are transmitted bythe terminal TE to the smart card CP. The properties of the executioncontext supplied by the terminal are for example the type of receptionterminal TE used, the name of the terminal, an identification key orcertificate of the terminal, and the geographical location of theterminal in the telecommunication network. These properties allow thedeployment driver PI to limit the amount of data it transmits to thedeployment portal PO and thus minimise the duration of the deployment.During a subsequent deployment, these references to the contextualproperties are replaced by the values supplied by another receptionterminal TE.

The user selects an application AP, conventionally for example from amenu presenting various applications whose deployments can be ordered bythe smart card CP. After selection of the application AP, the terminalTE, according to context, and preferably the user parameterise 15 theapplication, that is to say parameterise certain of, or possibly all,the descriptors DCA and DCX of the components and connections of theselected application which are capable of being parameterised.Parameterisation by the user is conventional using tree-structured menusrequesting parameter values.

Following these initialisation steps 1, the deployment of the selectedapplication AP is carried out according to the component descriptors CAiand the connection descriptors CXi in the parameterised descriptor DAPof the selected application AP.

According to the invention, only certain elements of the application aredefined as being priority elements and must be loaded before startup ofthe application, it being possible for the other elements to be deployedafter startup of the application. In the example of FIG. 1, theseelements are constituted by the user interface component CA1. In theapplication descriptor expressed in the XML language, presented above,the definition of the deployment priority of an element is defined inthe form of a property associated with the element, called“deploymenturgency” and having a value situated between 0 and 100. Byconvention, it can be chosen that the value 100 is assigned to thepriority elements, that is to say those having to be deployed beforestartup of the application.

The elements defined as priority elements are therefore selected 2 asbeing elements to be deployed, and then deployed 3.

After deployment of the priority elements, the application is started 4and executed 5. In the example of FIG. 1, only the component CA1 thatmanages the dialogue with the user is deployed and activated. The resultis that, after deployment of a single component, the user can detect onthe terminal TE that the application is activated and offers him achoice between access to the bank account managers and access to creditoffers.

Deployment of priority elements can take place synchronously orasynchronously. However, in general an application has a single entrypoint contained in a single component. Consequently, if it is wished forthe application to be activated as quickly as possible, only thecomponent containing the application entry point has to be configured asa priority element in order to be deployed on its own before startup ofthe application.

According to a first embodiment of the invention, deployments ofnon-priority application elements are performed only if they arerequested by the user.

According to a second alternative embodiment of the invention, there isdefined a category of medium priority elements which are deployed as abackground task as soon as the application is started and a category ofnon-priority or low priority elements which are deployed only if theyare required by the execution of the application in progress. In theapplication descriptor given above, it has been chosen as a conventionthat a priority level equal to 100 is assigned to the priority elements,a priority level above 10 and below 100 is assigned to the mediumpriority elements, and a priority level below 10 is assigned to the lowpriority elements, that is to say the elements which are rarelyexecuted.

Advantageously, each time an element of an application is called duringexecution of the application, a message is transmitted to the smartcard, in order to inform it thereof. For its part, the smart card, uponreceiving such a message, updates the value field of the priority levelin the descriptor of the element concerned in the applicationdescriptor. In this way, the order in which the elements of anapplication are deployed can be adapted to the requirements andpractices of each user concerning execution of an application.

When the user selects an option of the application in the course ofexecution, for example from a menu, either the component implementingthe chosen function is already deployed and, in this case, it can beexecuted immediately, or it is not deployed. In the latter case, theexecution environment of the application of the terminal TE detects thatthe component is not deployed and makes a request for deployment of thecomponent to the smart card CP (step 6) by providing it for example withthe name of the element to be deployed. This request initiates thedeployment of the element (step 7). Here again, element deployment canbe synchronous or asynchronous, that is to say the deployment driver PIwaits or does not wait for the end of deployment before returning tostep 6 in order to start another possible element deployment if otherelements are required.

If there are medium priority elements to be deployed, these are deployedas a background task, also synchronously or asynchronously (step 9).Provision can be made that this deployment of medium priority elementsis carried out only if the performance or capacities of the terminal aresufficient (step 8), or that these elements are deployed in order ofpriority until the available resources (for example in terms of memorycapacity) of the terminal reach a predefined minimum threshold, or else,in the case of an asynchronous deployment, the number of deploymentsinitiated in parallel is limited according to the available resources ofthe terminal, so as not to slow down, in a way appreciable to the user,the execution of the application in progress.

FIG. 5 illustrates the way in which the deployment 7 of an element Ei isperformed. During such a deployment, four types of command are sent bythe deployment driver PI to the deployment portal PO.

By means of a first installation command [INSTALL Ei] containing theproperties of the element descriptor, the driver PI orders 61 the portalPO to install the component Ei of the selected application. In responseto the installation command, the portal PO orders a search for thedesignated element Ei if it is a component, through at least one searchengine MR, in a component library BI, so as to retrieve an instance ofthe component into the terminal TE, or a remote reference of thiscomponent. After complete execution of the installation command,installation of the element is confirmed 62 by an acknowledgementmessage [ACK(INSTALL Ei)] transmitted by the portal PO to the driver PI.The driver PI next sends 63 to the portal PO a second command[PARAMETERISE Ei], containing the configuration parameters for theelement Ei, in order to parameterise the installed element.Parameterisation of the element Ei is performed according to certainparameters contained in the element descriptor and depends on theexecution context of the application and possibly selections of theuser, defined during deployment. Once parameterisation of the elementhas been performed by the portal PO, the latter transmits 64 to thedriver PI an acknowledgment message [ACK(PARAMETERISE Ei)]. If, at steps62 and 64, the portal PO has not responded by an acknowledgement beforethe end of a predetermined time delay, an error message is transmitted65 by the driver PI to the terminal TE in order to signal that it hasnot been possible to perform the deployment of the element.

Where a number of elements are deployed asynchronously, they must ofcourse be independent of one another, bearing in mind that an elementdependent on other elements cannot be deployed as long as the elementson which it depends are not deployed on the terminal.

In the example of FIG. 1 and according to the corresponding applicationdescriptor given above, only the user interface component CA1 is apriority element (priority equal to 100) and is deployed beforeexecution of the application on the terminal. Next, as a background taskor because the user has requested it, the banking agent component CA2which has the highest medium priority (70) is installed, as well as thecomponent CA4 which has the same priority. The deployment of these twocomponents can be performed asynchronously, that is to say substantiallyin parallel, these two elements being independent of one another and notdependent on other elements. The deployment of the component CA5 canalso be started since it is independent of the other applicationelements, even though it has a priority level of 50, lower than that ofother elements not yet deployed like the connections CX1 and CX3.However, this deployment might not be performed if for example it isconditioned by the performance of the terminal. Next, once thecomponents CA2 and CA4 are deployed, the connections CX1 between theuser interface CA1 and the agent CA2, and CX3 between the agent and thebank server B1, which have the next highest medium priority 69, can bedeployed in parallel. The connection CX4 between the components CA2 andCA5 can be installed following the component CA5. The other elements,that is to say CA3, CA6 and CX6, having a priority lower than 10, areinstalled only if the user requests them.

According to a preferred variant of the invention, the elements usedduring execution of the application are marked and, at the end ofexecution of the application, the terminal TE transmits to the smartcard the reference of the elements thus marked. Following thistransmission, the smart card updates the priority indicators of all theapplication elements according to the elements that have thus been used.The priority indicators of the application elements can thus be modifiedwithin certain limits. For example, the priority indicators of usedelements are increased, whilst unused elements are decreased.

1. A method for deploying an application comprised of a number ofdistributed remote elements, said deploying being initiated from a firstdata processing means containing a number of descriptors correspondingto respective ones of said elements deployable onto a second dataprocessing means, said descriptors including priority values indicativeof a deployment priority of the corresponding elements, and said seconddata processing means being linked to means for physically locating theelements and executing the application once deployed, the methodcomprising the following steps: identifying one or more elements of theapplication having a priority value not less than a predeterminedurgency value as priority elements, said priority elements having ahigher deployment priority than other elements of the application;deploying the identified priority elements onto the second processingmeans; executing the application by the second processing means as soonas the priority elements have been deployed; and deploying the otherelements of the application onto the second processing means afterinitiating execution of the application based on the priority valuescorresponding to the other elements.
 2. A method according to claim 1,wherein the step of identifying one or more elements of the applicationas priority elements comprises: examining at least one priorityindicator contained in a descriptor of said application.
 3. A methodaccording to claim 2, further including the step of: at the end ofexecution of the application, updating the respective priorityindicators of the elements of the application according to the elementsthat were used during execution of the application.
 4. A methodaccording to claim 1, further including the steps of, during executionof the application by the second data processing means, deploying acalled element that has not been previously deployed, and thencontinuing execution of the application.
 5. A method according to claim1, wherein the application elements not identified as priority elementsare deployed onto the second data processing means in parallel with theexecution of the application.
 6. A method according to claim 5, furtherincluding the steps of: transmitting an execution context of theapplication from the second data processing means to the first dataprocessing means; and deploying the application elements not identifiedas priority elements in parallel with the execution of the applicationaccording to the execution context that was transmitted.
 7. A methodaccording to claim 5, wherein the non-priority elements aresynchronously deployed onto the second processing means in parallel withthe execution of the application.
 8. A method according to claim 5,wherein the non-priority elements are asynchronously deployed onto thesecond processing means in parallel with the execution of theapplication.
 9. A method according to claim 1, further comprising thestep of: deploying the non-priority elements of the application onto thesecond processing means only if they are called during execution of theapplication.
 10. An electronic object comprising: a description meansfor describing an application having a number of distributed remoteelements; and a processing means for deploying the application forexecution outside the electronic object, according to the applicationdescription means, wherein: the description means comprises at least onepriority indicator indicative of a deployment priority of acorresponding one of said elements, said priority indicator identifyingat least one of the elements as a priority element of the applicationhaving a higher deployment priority than other elements of theapplication; the means for deploying the application deploys only thepriority elements before execution of the application is initiated, thedeployed priority elements having a priority value not less than apredetermined urgency value; and the means for deploying the applicationdeploys one or more of the other elements after initiating execution ofthe application based on the priority values corresponding to the otherelements.
 11. An electronic object according to claim 10, wherein saidobject is a microcontroller card.
 12. An application deployment systemcomprising: a portable electronic object in the form of amicrocontroller card; and a terminal connected to a data transmissionnetwork and having a means for communicating with the portableelectronic object, wherein the portable electronic object comprises: adescription means for describing an application having a number ofdistributed remote elements accessible to the terminal through the datatransmission network, said description means including at least onepriority indicator indicative of a deployment priority of acorresponding one of said elements and a processing means for deployingthe application onto the terminal for execution by the terminal,according to the description means, said processing means being adaptedto: identify one or more elements of the application having a priorityvalue not less than a predetermined urgency value as priority elements,said priority elements having a higher deployment priority than otherelements of the deploy only the priority elements before initiating theexecution of the application deployed on the terminal; and deploy one ormore of the other elements after initiating execution of the applicationbased on the corresponding priority values of the other elements.
 13. Amethod for deploying an application having a number of components, themethod comprising: classifying the components of the application into afirst category of components that are to be loaded before startup of theapplication, and at least a second category of components that can bedeployed after startup of the application, the components of said firstcategory having a corresponding priority value not less than apredetermined urgency value; in response to a request to run theapplication on a data processor, deploying the components of said firstcategory from a remote source to said data processor; executing saidapplication on said data processor with the components of said firstcategory prior to the time that components of said second category havebeen deployed to said data processor; and deploying the components ofsaid second category to said data processor based on the correspondingpriority values of the components in the second category.
 14. The methodof claim 13 further including the step of classifying the components ofsaid second category into a first sub-category of components that can bedeployed as a background task after the execution of the application hasbeen initiated, and a second sub-category of tasks that are deployedonly if called during the execution of the application.
 15. The methodof claim 14, further including the step of determining at least oneattribute of said data processor during execution of the application,and automatically downloading a component of said first sub-categoryduring execution of the application if said attribute exceeds athreshold value.
 16. The method of claim 15, wherein said attributecomprises available memory capacity.
 17. The method of claim 15, whereinsaid attribute comprises performance speed of the application execution.18. The method of claim 13, further including the step of deploying acomponent of said second category to said data processor when a call ismade for said component during execution of the application.
 19. Amethod for installing and executing an application consisting of aplurality of distributed software components and connection elementsthat define connections between the software components, by means of afirst data processing means, from a transmission network onto a seconddata processing means, said software components and connection elementsbeing located on a site of the transmission network that is linked tothe second data processing means, wherein the first data processingmeans stores, on a computer-readable medium, a descriptor for theapplication comprising identifications of software components and atleast one connection element for combining the identified softwarecomponents, and deployment commands that, when executed by the firstdata processing means, install and deploy the application onto thesecond data processing means according to the descriptor, said methodincluding the following steps: selecting at least one software componentof the application having a corresponding priority indicator value inthe descriptor that is not less than a predetermined urgency value, saidat least one software component having a higher priority indicator valuethan at least one other component of the application; installing anddeploying onto the second data processing means only the selectedcomponents before startup of the application; executing the applicationby the second data processing means after said selected components havebeen installed; and installing and deploying onto the second dataprocessing means non-installed components of the application afterstartup of the application based on the priority indicator valuecorresponding to the non-installed components.
 20. A method according toclaim 19, wherein the step of selecting at least one software componentof the application is performed by examining at least one priorityindicator contained in the descriptor of said application.
 21. A methodaccording to claim 20, further comprising the step, at the end ofexecution of the application, of updating the respective priorityindicators of the software components of the application according tohow frequently the software components have been used during executionof the application.
 22. A method according to claim 19, wherein if,during execution of the application by the second data processing means,a non-installed software component is called, the second data processingmeans installs the called software component, and then continuesexecution of the application.
 23. A method according to claim 19,wherein the software components not selected as higher priority elementsare installed onto the second data processing means concurrently withthe execution of the application.
 24. A method according to claim 23,wherein the execution of the application comprises the step oftransmitting the execution procedure from the second data processingmeans to the first data processing means, and wherein the concurrentinstallation of the software components not selected as higher priorityelements is carried out according to said execution procedure.
 25. Amethod according to claim 19, wherein the software components notselected as higher priority elements are installed onto the second dataprocessing means in synchronization with the execution of theapplication.
 26. An electronic object comprising: a first dataprocessor; and a computer-readable data storage device storing programinstructions, and storing a descriptor for an application consisting ofa plurality of distributed software components and connection elementsdefining connections between said software components, wherein saidprogram instructions, when executed by the first data processor, controlthe electronic object to: transmit deployment commands to a second dataprocessing means for installing and deploying the application onto thesecond data processing means according to the descriptor, the descriptorcomprising at least one priority indicator field identifying at leastone software component as an element of the application having a higherpriority than at least one other component of said application, whereinsaid first data processors: selects one or more components of theapplication having a corresponding priority indicator field value thatis not less than a predetermined urgency value as priority components;installs and deploys, based on the value of the priority indicatorfield, only said higher priority elements onto the data processing meansbefore startup of the application, and installs and deploys, based onvalue of the priority indicator field, one or more of the othercomponents after startup of the application.
 27. An electronic objectaccording to claim 26, wherein the electronic object is amicrocontroller card.
 28. An application deployment system comprising: amicrocontroller card; a terminal connected to a data transmissionnetwork; and a means for communicating with the microcontroller card,said microcontroller card comprising: a processor; and acomputer-readable data storage device storing program instructions, andstoring a descriptor for an application consisting of a plurality ofdistributed software components and connection elements definingconnections between said software components, said program instructions,when executed by the processor, controlling said processor to transmitdeployment commands to a data processing means for installing anddeploying the application onto the data processing means according tothe descriptor, wherein the descriptor comprises at least one priorityindicator field identifying at least one software component as anelement of the application having a higher priority than at least oneother component of said application, and wherein said processor: selectsone or more elements of the application identified as having a value inthe corresponding priority indicator field that is not less than apredetermined urgency value as priority elements, installs and deploys,based on the priority indicator field, only said higher prioritycomponents onto the data processing means before startup of theapplication, and installs and deploys, based on the priority indicatorfield, said at least one or more other components onto the dataprocessing means after startup of the application.